package com.ebring.shareEducation.service;

import com.ebring.shareEducation.bean.User;
import com.ebring.shareEducation.bean.response.UserRsp;
import com.ebring.shareEducation.utils.RspMsg;

import java.util.List;

public interface UserService {

    /**
     * 添加用户
     */
    RspMsg<User> insertUser(User user);

    /**
     * 更新用户
     */
    RspMsg<User> updateUser(User user);

    /**
     * 通过id查找用户
     */
    RspMsg<User> selectUserByUserId(String userId);

    /**
     * 批量删除用户
     */
    RspMsg<User> DeleteUsers(String[] userId);



    /**
     * 用户登陆
     */

    RspMsg<User> login(String userId, String password);

    /**
     * 修改密码
     */
    RspMsg<User> changePassword(String oldPassword, String newPassword, String validDate, String token);

    /**
     * 查找所有用户
     */
    RspMsg<UserRsp> selectUsers(String userId, String username, String branchId, String institutionName);

    RspMsg<UserRsp> findUserByuserId(String userId);

    RspMsg<UserRsp> selectUsersfind();

    /**
     * 根据多条件模糊查询
     *
     * @param userId
     * @param username
     * @param branchId
     * @param institutionName
     * @return
     */
    RspMsg<List<UserRsp>> findUser(UserRsp userRsp);

    /**
     * 忘记密码（密码重置）
     */

    RspMsg<User> forgetPassword(String userId);


    // 家长账户注销
    RspMsg<User> cancelUser(String userId);
    // 修改登录密码
    RspMsg updatePassword(String userId, String oldPassword, String newPassword);
    // 新增加支付密码
    RspMsg addPayPassword(String payPassWord,String userId);
    // 修改支付密码
    RspMsg updatePayPassword(String userId, String oldPayPassword, String newPayPassword);
    RspMsg<User> forgetphone(String userId,String phone);

    //身份认证
    RspMsg authId(User user);
    // 充值金币
    RspMsg addPayGold(String userId, String payGold);

    //查询审核未通过的人
    RspMsg<List<User>> selectByExaminationState(String phone,String examinationState);
    //审核实名用户信息
    RspMsg<User> auditUser(String userId, String examinationState);

    int updateUserByEntity(User user);

    User selectUserBeanByUserId(String userId);
}
